android versions

Biggs' Apps

for Android devices

  • android home
  • apps
  • testing
  • rants (main)
  • about biggs
  • crossroads

Kicking and Screaming

My Descent into Kotlin

My third kotlin rant


September 11, 2020 (yeah, I know!)

final by default

Did you know that kotlin classes cannot be inherited from? At least that's the default. To make a class inheritable, you need to put the keyword open before the class declaration.

Presumably, it's possible to ruin a class by inheriting from it. To prevent this from happening accidentally, the designers of kotlin decided to make all classes final by default. If you intend for a class to be inherited, define it so explicitly.

But...inheritance is ONE OF THE MOST IMPORTANT PARTS of object oriented programming! In fact, without inheritance, it's really not OOP at all. Inheritance is essential.

Now I'm fine with other programming paradigms--functional, procedural, logical, etc. I have done lots of good work with most of them. This is no place to argue the relative merits of of those systems.

But just don't claim that Kotlin is object oriented if you're going to kill the most important aspect of object oriented programming. Go ahead and have the guts to call it procedural with a few object niceties--don't be a wimp about it. Sheesh!


"Android Evolution" created by Manu Cornet, http://www.bonkersworld.net. All else is copyright 2020 by Scott M. Biggs and Sleep Furiously Productions. Not that that means much these days.